/********************************************************************************
 * Project Name		[JavaEE_Components]
 * File Name     	[JavaMail04.java]
 * Creation Date 	[2015-01-01]
 * 
 * Copyright© ge.y.yang@gmail.com All Rights Reserved
 * 
 * Work hard, play harder, think big and keep fit
 ********************************************************************************/
package javamail._notes;

/**
 * SMTP, POP3, IMAP相关属性
 * 
 * @author 不落的太阳(Sean Yang aka ShortPeace)
 * @version 1.0
 * @since jdk 1.8
 * 
 */
public final class JavaMail04 {

	public void SMTP() {
		/**
		 * SMTP[Simple Mail Transfer Protocol]<br/>
		 * 
		 * JavaMail使用com.sun.mail.smtp作为SMTP协议来访问SMTP服务器<br/>
		 * 
		 * 主要的类<br/>
		 * com.sun.mail.smtp.SMTPMessage<br/>
		 * com.sun.mail.smtp.SMTPSSLTransport<br/>
		 * com.sun.mail.smtp.SMTPTransport<br/>
		 * 
		 * SMTP相关的属性[带解释的属性是常用的属性]<br/>
		 * mail.smtp.user SMTP服务器的用户名, 一般为发件人邮件地址<br/>
		 * mail.smtp.host SMTP服务器主机名<br/>
		 * mail.smtp.port SMTP服务器端口<br/>
		 * mail.smtp.connectiontimeout<br/>
		 * mail.smtp.timeout<br/>
		 * mail.smtp.from<br/>
		 * mail.smtp.localhost<br/>
		 * mail.smtp.localaddress<br/>
		 * mail.smtp.localport<br/>
		 * mail.smtp.ehlo<br/>
		 * mail.smtp.auth 是否使用验证, 默认为false<br/>
		 * mail.smtp.auth.mechanisms<br/>
		 * mail.smtp.auth.login.disable<br/>
		 * mail.smtp.auth.plain.disable<br/>
		 * mail.smtp.auth.digest-md5.disable<br/>
		 * mail.smtp.auth.ntlm.disable<br/>
		 * mail.smtp.auth.ntlm.domain<br/>
		 * mail.smtp.auth.ntlm.flags<br/>
		 * mail.smtp.submitter<br/>
		 * mail.smtp.dsn.notify<br/>
		 * mail.smtp.dsn.ret<br/>
		 * mail.smtp.sendpartial<br/>
		 * mail.smtp.sasl.enable<br/>
		 * mail.smtp.sasl.mechanisms<br/>
		 * mail.smtp.sasl.authorizationid<br/>
		 * mail.smtp.sasl.realm<br/>
		 * mail.smtp.quitwait<br/>
		 * mail.smtp.reportsuccess<br/>
		 * mail.smtp.socketFactory<br/>
		 * mail.smtp.socketFactory.class<br/>
		 * mail.smtp.socketFactory.fallback<br/>
		 * mail.smtp.socketFactory.port<br/>
		 * mail.smtp.ssl.enable<br/>
		 * mail.smtp.ssl.checkserveridentity<br/>
		 * mail.smtp.ssl.trust<br/>
		 * mail.smtp.ssl.socketFactory<br/>
		 * mail.smtp.ssl.socketFactory.class<br/>
		 * mail.smtp.ssl.socketFactory.port<br/>
		 * mail.smtp.ssl.protocols<br/>
		 * mail.smtp.starttls.enable<br/>
		 * mail.smtp.starttls.required<br/>
		 * mail.smtp.socks.host<br/>
		 * mail.smtp.socks.port<br/>
		 * mail.smtp.mailextension<br/>
		 * mail.smtp.userset<br/>
		 */
	}

	public void POP3() {
		/**
		 * POP3[Post Office Protocol]<br/>
		 * 使用本地电子邮件客户端通过TCP/IP协议从远程服务器检索电子邮件<br/>
		 * POP支持访问远程邮箱简单的下载和删除要求<br/>
		 * POP3服务器通常监听端口110<br/>
		 * 
		 * POP3协议只支持一个名为INBOX一个文件夹<br/>
		 * POP3协议的限制, 事件通知, 文件夹管理, 标志管理等JavaMail的API的功能无效<br/>
		 * POP3协议不支持设置邮件标志标志, 例如, Flags.Flag.RECENT标志将永远不会被用于POP3邮件设置<br/>
		 * POP3协议不支持Folder.expunge()方法, 想要彻底删除邮件, 要将消息的标志设置为Flags.Flag.DELETED,
		 * 同时使用Folder.close(true)方法将修改保存到服务器上<br/>
		 * POP3协议不提供接收日期, 所以getReceivedDate方法将返回null<br/>
		 * 
		 * JavaMail使用com.sun.mail.pop3作为POP3协议来访问POP3服务器<br/>
		 * 一般不需要直接使用此包的任何子类, 使用javax.mail包定义的API即可, 即不直接使用POP3Store或POP3Folder,
		 * 而使用Session方法getStore方法获取相应的Store和Folder<br/>
		 * 
		 * JavaMail使用POP3协议的方式 <code>
		 * session.getStore("pop3");
		 * session.getStore("pop3://username:password@host:port/INBOX")
		 * </code>
		 *
		 * 
		 * 主要的类<br/>
		 * com.sun.mail.pop3.POP3Folder<br/>
		 * com.sun.mail.pop3.POP3Message<br/>
		 * com.sun.mail.pop3.POP3Store<br/>
		 * com.sun.mail.pop3.POP3SSLStore<br/>
		 * 
		 * POP3相关的属性[带解释的属性是常用的属性]<br/>
		 * mail.pop3.user POP3默认的用户名, 通常为发件人的邮箱地址<br/>
		 * mail.pop3.host POP3服务器的主机<br/>
		 * mail.pop3.port POP3服务器的端口, 默认110<br/>
		 * mail.pop3.connectiontimeout<br/>
		 * mail.pop3.timeout<br/>
		 * mail.pop3.rsetbeforequit<br/>
		 * mail.pop3.message.class <br/>
		 * mail.pop3.localaddress<br/>
		 * mail.pop3.localport<br/>
		 * mail.pop3.apop.enable<br/>
		 * mail.pop3.socketFactory<br/>
		 * mail.pop3.socketFactory.class<br/>
		 * mail.pop3.socketFactory.fallback<br/>
		 * mail.pop3.socketFactory.port<br/>
		 * mail.pop3.ssl.enable<br/>
		 * mail.pop3.ssl.checkserveridentity<br/>
		 * mail.pop3.ssl.trust<br/>
		 * mail.pop3.ssl.socketFactory SSLSocketFactory<br/>
		 * mail.pop3.ssl.socketFactory.class<br/>
		 * mail.pop3.ssl.socketFactory.port<br/>
		 * mail.pop3.ssl.protocols<br/>
		 * mail.pop3.starttls.enable<br/>
		 * mail.pop3.starttls.required <br/>
		 * mail.pop3.socks.host<br/>
		 * mail.pop3.socks.port<br/>
		 * mail.pop3.disabletop<br/>
		 * mail.pop3.forgettopheaders<br/>
		 * mail.pop3.filecache.enable<br/>
		 * mail.pop3.filecache.dir<br/>
		 * mail.pop3.cachewriteto<br/>
		 * mail.pop3.keepmessagecontent<br/>
		 */
	}

	public void IMAP() {
		/**
		 * IMAP[Internet Message Access Protocol]<br/>
		 * 一个应用层互联网协议, 它允许电子邮件客户端来访问邮件的远程服务器上的邮件<br/>
		 * IMAP支持两种操作: 在线和离线模式, 使用IMAP电子邮件的客户端在服务器上保留邮件直到用户删除它们<br/>
		 * IMAP服务器通常监听端口143, IMAP通过SSL[IMAPS]的端口号为993<br/>
		 * 
		 * JavaMail使用com.sun.mail.imap作为IMAP协议来访问IMAP服务器<br/>
		 * 一般不需要直接使用此包的任何子类, 使用javax.mail包定义的API即可, 即不直接使用IMAPStore或IMAPFolder,
		 * 而使用Session方法getStore方法获取相应的Store和Folder<br/>
		 * 
		 * 需要使用此包的场景: 邮件的限制管理<br/>
		 * 
		 * 主要的类<br/>
		 * com.sun.mail.imap.IMAPFolder<br/>
		 * com.sun.mail.imap.IMAPFolder.ProtocolCommand<br/>
		 * com.sun.mail.imap.IMAPFolder.FetchProfileItem<br/>
		 * com.sun.mail.imap.IMAPMessage<br/>
		 * com.sun.mail.imap.IMAPMessage.FetchProfileCondition<br/>
		 * com.sun.mail.imap.IMAPStore<br/>
		 * com.sun.mail.imap.IMAPSSLStore<br/>
		 * com.sun.mail.imap.IMAPFolder<br/>
		 * 
		 * IMAP相关的属性[带解释的属性是常用的属性]<br/>
		 * mail.imap.user IMAP默认的用户名, 通常为发件人的邮箱地址<br/>
		 * mail.imap.host IMAP服务器的主机<br/>
		 * mail.imap.port IMAP服务器的端口, 默认143<br/>
		 * mail.imap.partialfetch<br/>
		 * mail.imap.fetchsize<br/>
		 * mail.imap.ignorebodystructuresize<br/>
		 * mail.imap.connectiontimeout<br/>
		 * mail.imap.timeout<br/>
		 * mail.imap.statuscachetimeout<br/>
		 * mail.imap.appendbuffersize<br/>
		 * mail.imap.connectionpoolsize<br/>
		 * mail.imap.connectionpooltimeout<br/>
		 * mail.imap.separatestoreconnection<br/>
		 * mail.imap.auth.login.disable<br/>
		 * mail.imap.auth.plain.disable<br/>
		 * mail.imap.auth.ntlm.disable<br/>
		 * mail.imap.proxyauth.user<br/>
		 * mail.imap.localaddress<br/>
		 * mail.imap.localport<br/>
		 * mail.imap.sasl.enable<br/>
		 * mail.imap.sasl.mechanisms<br/>
		 * mail.imap.sasl.authorizationid<br/>
		 * mail.imap.sasl.realm<br/>
		 * mail.imap.auth.ntlm.domain<br/>
		 * mail.imap.auth.ntlm.flags<br/>
		 * mail.imap.socketFactory<br/>
		 * mail.imap.socketFactory.class<br/>
		 * mail.imap.socketFactory.fallback <br/>
		 * mail.imap.socketFactory.port<br/>
		 * mail.imap.ssl.enable<br/>
		 * mail.imap.ssl.checkserveridentity<br/>
		 * mail.imap.ssl.trust<br/>
		 * mail.imap.ssl.socketFactory SSLSocketFactory<br/>
		 * mail.imap.ssl.socketFactory.class <br/>
		 * mail.imap.ssl.socketFactory.port <br/>
		 * mail.imap.ssl.protocols<br/>
		 * mail.imap.starttls.enable<br/>
		 * mail.imap.starttls.required<br/>
		 * mail.imap.socks.host<br/>
		 * mail.imap.socks.port<br/>
		 * mail.imap.minidletime<br/>
		 * mail.imap.enableimapevents<br/>
		 */
	}
}
